﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BUS;
using DTO;
using System.Data;

namespace FastDeal
{
    public partial class QuanLyTaiKhoan : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["DaDangNhap"] == null || (bool)Session["DaDangNhap"] == false)
            {
                Response.Redirect("~/Default.aspx");
            }
            if ((int)Session["LoaiThanhVien"] != 1)
            {
                Response.Redirect("~/Default.aspx");
            }
            if (IsPostBack== false)
            {
                LoadDSTaiKhoan();
            }
        }

        TaiKhoan_BUS tkBUS = new TaiKhoan_BUS();
        TaiKhoan tk = new TaiKhoan();
        private void LoadDSTaiKhoan()
        {
            gvDSTaiKhoan1.DataSource = tkBUS.LayDanhSachTK_Admin();
            gvDSTaiKhoan1.DataBind();
        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void gvDSTaiKhoan_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int viTri = e.RowIndex;
            String maXoa = gvDSTaiKhoan1.DataKeys[viTri].Value.ToString();
            tk.UserName = maXoa;
            tkBUS.Xoa_TaiKhoan(tk);
            LoadDSTaiKhoan();
        }

        protected void gvDSTaiKhoan_RowEditing(object sender, GridViewEditEventArgs e)
        {
            // lấy giá trị hiện tại của cột quyền
            string quyenHienTai = ((Label)gvDSTaiKhoan1.Rows[e.NewEditIndex].Cells[3].FindControl("lblQuyen")).Text;
            string trangthaiHienTai =((Label)gvDSTaiKhoan1.Rows[e.NewEditIndex].Cells[2].FindControl("lblTrangThai")).Text;
            // chuyển gridview sang trạng thái edit
            gvDSTaiKhoan1.EditIndex = e.NewEditIndex;
            LoadDSTaiKhoan();

            LoaiThanhVien_BUS ltvBUS = new LoaiThanhVien_BUS();
            List<LoaiThanhVien> list = new List<LoaiThanhVien>();
            list= ltvBUS.LayDanhSach_LoaiThanhVien();

            // tìm control ddlQuyen khi ở trạng thái edit
            DropDownList ddlQuyen1 = (DropDownList)gvDSTaiKhoan1.Rows[e.NewEditIndex].Cells[3].FindControl("ddlQuyen");
            ddlQuyen1.DataSource = list;
            ddlQuyen1.DataTextField = "TenLoaiThanhVien";
            ddlQuyen1.DataValueField = "MaLoaiThanhVien";
            ddlQuyen1.DataBind();

            DropDownList ddlTrangThai1 = (DropDownList)gvDSTaiKhoan1.Rows[e.NewEditIndex].Cells[2].FindControl("ddlTrangThai");
            if (trangthaiHienTai=="Active")
            {
                ddlTrangThai1.SelectedIndex = 0;
            }
            else
                if (trangthaiHienTai=="Banned")
                {
                    ddlTrangThai1.SelectedIndex = 1;
                }
            // chọn lại dòng hiện tại của ddlQuyen theo đúng giá trị đã hiển thị
            for (int i = 0; i < list.Count;i++ )
            {
                if (list[i].TenLoaiThanhVien.ToString() == quyenHienTai)
                {
                    ddlQuyen1.SelectedIndex=i;
                    break;
                }
            }             
        }

        protected void gvDSTaiKhoan_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            // trả lại giá trị -1 để ko có dòng nào đc chọn 
            gvDSTaiKhoan1.EditIndex = -1;
            LoadDSTaiKhoan();
        }

        protected void gvDSTaiKhoan_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            // nếu dữ liệu mới bằng dữ liệu cũ thì ko thay đổi csdl
            if (e.NewValues == e.OldValues)
            {
                e.Cancel = true;
            }
            else
            {
                 //dữ liệu đã được thay đổi
                String username = ((Label)gvDSTaiKhoan1.Rows[e.RowIndex].Cells[0].FindControl("lbUser")).Text.ToString();
               // String email = ((Label)gvDSTaiKhoan.Rows[e.RowIndex].Cells[1].FindControl("lbEmail")).Text.ToString();
                String trangthai = ((DropDownList)gvDSTaiKhoan1.Rows[e.RowIndex].Cells[2].FindControl("ddlTrangThai")).SelectedValue.ToString();
                String maloaithanhvien = ((DropDownList)gvDSTaiKhoan1.Rows[e.RowIndex].Cells[3].FindControl("ddlQuyen")).SelectedValue.ToString();

                tk.UserName = username;
                tk.TrangThai = Convert.ToInt32(trangthai);
                tk.MaLoaiThanhVien = Convert.ToInt32(maloaithanhvien);

                // update csdl
                tkBUS.Sua_TaiKhoanAdmin(tk);

                // tắt trạng thái sửa của gv
                gvDSTaiKhoan1.EditIndex = -1;
                LoadDSTaiKhoan();

            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Admin/ThemTaiKhoan.aspx");
        }

              
    }
}